import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CollectionsDemo01 {
    public static void main(String[] args) {
//        List<String> strings = new ArrayList<>();
//        strings.add("2");
//        strings.add("4");
//        strings.add("1");
//        strings.add("10");
//        Collections.sort(strings);
//
//        for (String string : strings) {
//            System.out.println(string);
//        }
//        List<Dog> dogs = new ArrayList<>();
//        dogs.add(new Dog(10));
//        dogs.add(new Dog(20));
//        dogs.add(new Dog(8));
//        Collections.sort(dogs, new Comparator<Dog>() {
//            @Override
//            public int compare(Dog o1, Dog o2) {
//                return o2.getAge() - o1.getAge();
//            }
//        });
//        for (Dog dog : dogs) {
//            System.out.println(dog);
//        }

//        Collections.synchronizedList();//线程安全


//        List<Dog> dogs = new ArrayList<>();
//        dogs.add(new Dog(10));
//        dogs.add(new Dog(20));
//        dogs.add(new Dog(8));
//        Collections.sort(dogs);// 千万别忘排序
//        System.out.println(Collections.binarySearch(dogs, new Dog(8)));//0
//
//        List<String> strings = new ArrayList<>();
//        strings.add("1");
//        strings.add("2");
//        for (String s : strings) {
//            System.out.println(s);
//        }
//        System.out.println(strings.size());
//        Collections.fill(strings,"1");
//        for (String s : strings) {
//            System.out.println(s);
//        }
//        System.out.println(strings.size());

        List<Dog> dogs = new ArrayList<>();
        dogs.add(new Dog(10));
        dogs.add(new Dog(20));
        dogs.add(new Dog(8));
        Dog max = Collections.max(dogs);
        System.out.println(max);// 20
    }
}

class Dog implements Comparable<Dog> {
    private Integer age;

    public Dog(Integer age) {
        this.age = age;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public int compareTo(Dog o) {
        return this.age - o.age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "age=" + age +
                '}';
    }
}
